package com.dinglian.ots.service;

import com.dinglian.ots.dao.model.Country;
import com.dinglian.ots.dao.model.District;
import com.dinglian.ots.vo.address.DistrictVo;
import com.dinglian.ots.vo.address.ProvinceVo;
import com.dinglian.ots.vo.buyer.MessageVo;
import com.dinglian.ots.vo.product.*;
import com.dinglian.ots.vo.user.LoginByPasswordVo;
import com.dinglian.ots.vo.user.UserVo;
import com.github.pagehelper.PageInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author wangbo
 */
public interface CommonService {

    /**
     * 发送验证码
     * @param mobile
     * @return
     */
    String sendCode(String mobile);

    /**
     * 获取品类列表
     * @return
     */
    List<CategoryVo> getCategoryList();

    /**
     * 获取二级品类列表
     * @return
     */
    List<ProductCategoryVo> getSubcategoryList();

    /**
     * 获取风格列表
     * @return
     */
    List<StyleVo> getStyleList();

    /**
     * 获取站内信列表
     * @param userId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<MessageVo> getMessageList(Integer userId, Integer pageNum, Integer pageSize);

    /**
     * 删除站内信
     * @param messageId
     */
    void deleteMessage(Integer messageId);

    /**
     * 验证手机验证码
     * @param mobile
     * @return
     */
    void checkCode(String mobile,String code);


    /**
     * 获取所有季节
     * @return
     */
    List<SeasonVo> getSeasonList();

    /**
     * 获取所有颜色
     * @return
     */
    List<ColorVo> getColorList();

    /**
     * 获取所有尺寸
     * @return
     */
    List<SizeVo> getSizeList();

    /**
     * 获取所有适用人群
     * @return
     */
    List<CrowdVo> getCrowdList();

    /**
     * 用于富文本上传图片
     * @param file
     * @return
     */
    String uploadPicture(MultipartFile file);

    /**
     * 获取所有国家
     * @return
     */
    List<Country> getCountry();

    /**
     * 获取省份城市
     * @return
     */
    List<ProvinceVo> getProvinceCity();

    /**
     * 获取下级目的地节点
     * @param parentId
     * @return
     */
    List<District> getChildDistrict(Integer parentId);
}
